#requires AutoHotkey v1.1
-; UltimateKEYS (for AutoHotkey v1.1).ahk - 2023-09-08
+; UltimateKEYS (for AutoHotkey v1.1).ahk - 2025-01-21
-; Website : www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
+; Website : https://pieter-degroote.github.io/UltimateKEYS/
-; License : GNU General Public License Version 3
-
-; GitHub : github.com/pieter-degroote/UltimateKEYS
+; GitHub : https://github.com/pieter-degroote/UltimateKEYS
+; License : GNU General Public License Version 3
-; Requirements :
-; Keyboard layout (on Windows) : US QWERTY
+; Configuration :
-; AutoHotkey v1.1 (www.autohotkey.com)
+; Keyboard layout : US QWERTY
#NoEnv ; avoids checking empty variables to see if they are environment variables
-ListLines Off ; omits recently executed lines from history (for privacy and security)
#KeyHistory 0 ; disables the key history (for privacy and security)
+ListLines Off ; omits recently executed lines from history (for privacy and security)
SendMode Input ; optimizes for faster and more reliable input
cmpDoubleAcute.item["U"] := "{u+0170}" ; (Ű) U with double acute
-; Compose : Hook and Horn (h)
+; Compose : Hook, Horn and Variations (h)
cmpSmallH := ComObjCreate("Scripting.Dictionary")
cmpSmallH.item["b"] := "{u+0253}" ; (ɓ) b with hook
cmpSmallH.item["j"] := "{u+0267}" ; (ɧ) small letter heng with hook
cmpSmallH.item["k"] := "{u+0199}" ; (ƙ) k with hook
cmpSmallH.item["K"] := "{u+0198}" ; (Ƙ) K with hook
+cmpSmallH.item["l"] := "{u+026c}" ; (ɬ) l with belt
+cmpSmallH.item["L"] := "{u+a7ad}" ; (Ɬ) L with belt
cmpSmallH.item["m"] := "{u+0271}" ; (ɱ) m with hook
cmpSmallH.item["M"] := "{u+2c6e}" ; (Ɱ) M with hook
cmpSmallH.item["n"] := "{u+0272}" ; (ɲ) n with left hook
cmpSmallH.item["Z"] := "{u+0224}" ; (Ȥ) Z with hook
-; Compose : Retroflex Hook, Right Hook, Crossed-Tail and Variations (f)
+; Compose : Retroflex Hook and Variations (f)
cmpSmallF := ComObjCreate("Scripting.Dictionary")
cmpSmallF.item["d"] := "{u+1d91}" ; (ᶑ) d with hook and tail
cmpSmallF.item["e"] := "{u+025d}" ; (ɝ) small letter reversed open e with hook
+cmpSmallF.item["f"] := "{u+1d94}" ; (ᶔ) small letter reversed open e with retroflex hook
cmpSmallF.item["g"] := "{u+ab36}" ; (ꬶ) small letter script g with crossed-tail
cmpSmallF.item["h"] := "{u+a727}" ; (ꜧ) small letter heng
cmpSmallF.item["H"] := "{u+a726}" ; (Ꜧ) capital letter heng
cmpSmallF.item["j"] := "{u+029d}" ; (ʝ) j with crossed-tail
+cmpSmallF.item["J"] := "{u+a7b2}" ; (Ʝ) J with crossed-tail
cmpSmallF.item["l"] := "{u+026d}" ; (ɭ) l with retroflex hook
cmpSmallF.item["n"] := "{u+0273}" ; (ɳ) n with retroflex hook
cmpSmallF.item["q"] := "{u+02a0}" ; (ʠ) q with hook
cmpSmallF.item["z"] := "{u+0290}" ; (ʐ) z with retroflex hook
+; Compose : Swash Tail and Other Variations (t)
+
+cmpSmallT := ComObjCreate("Scripting.Dictionary")
+cmpSmallT.item["c"] := "{u+a793}" ; (ꞓ) c with bar
+cmpSmallT.item["C"] := "{u+a792}" ; (Ꞓ) C with bar
+cmpSmallT.item["f"] := "{u+a799}" ; (ꞙ) f with stroke
+cmpSmallT.item["F"] := "{u+a798}" ; (Ꞙ) F with stroke
+cmpSmallT.item["l"] := "{u+2c61}" ; (ⱡ) l with double bar
+cmpSmallT.item["L"] := "{u+2c60}" ; (Ⱡ) L with double bar
+cmpSmallT.item["s"] := "{u+023f}" ; (ȿ) s with swash tail
+cmpSmallT.item["S"] := "{u+2c7e}" ; (Ȿ) S with swash tail
+cmpSmallT.item["z"] := "{u+0240}" ; (ɀ) z with swash tail
+cmpSmallT.item["Z"] := "{u+2c7f}" ; (Ɀ) Z with swash tail
+
+
; Compose : Latin Greek Letters and Variations (l)
cmpSmallL := ComObjCreate("Scripting.Dictionary")
cmpSmallL.item["?"] := "{u+0294}" ; (ʔ) unicase letter glottal stop
-; Compose : Turned Letters (r)
+; Compose : Turned and Reversed Letters (r)
cmpSmallR := ComObjCreate("Scripting.Dictionary")
cmpSmallR.item["a"] := "{u+0250}" ; (ɐ) small letter turned a
cmpSmallR.item["A"] := "{u+2c6f}" ; (Ɐ) capital letter turned A
cmpSmallR.item["b"] := "{u+025c}" ; (ɜ) small letter reversed open e
+cmpSmallR.item["B"] := "{u+a7ab}" ; (Ɜ) capital letter reversed open E
cmpSmallR.item["d"] := "{u+018d}" ; (ƍ) Latin small letter turned delta
cmpSmallR.item["e"] := "{u+01dd}" ; (ǝ) small letter turned e
cmpSmallR.item["E"] := "{u+018e}" ; (Ǝ) capital letter reversed E
cmpSmallR.item["Q"] := "{u+2c70}" ; (Ɒ) Latin capital letter turned alpha
cmpSmallR.item["r"] := "{u+0279}" ; (ɹ) small letter turned r
cmpSmallR.item["t"] := "{u+0287}" ; (ʇ) small letter turned t
+cmpSmallR.item["T"] := "{u+a7b1}" ; (Ʇ) small letter turned T
cmpSmallR.item["v"] := "{u+028c}" ; (ʌ) small letter turned v
cmpSmallR.item["V"] := "{u+0245}" ; (Ʌ) capital letter turned V
cmpSmallR.item["w"] := "{u+028d}" ; (ʍ) small letter turned w
cmpSmallR.item["y"] := "{u+028e}" ; (ʎ) small letter turned y
+cmpSmallR.item["z"] := "{u+01b9}" ; (ƹ) Latin small letter ezh reversed
+cmpSmallR.item["Z"] := "{u+01b8}" ; (Ƹ) Latin capital letter ezh reversed
; Compose : Currency Symbols ($)
; Compose : Spacing Characters and Dashes
cmpSpace := ComObjCreate("Scripting.Dictionary")
-cmpQuad := ComObjCreate("Scripting.Dictionary")
cmpSpace.item["1"] := "{u+2004}" ; three-per-em space
cmpSpace.item["2"] := "{u+2002}" ; en space
cmpSpace.item["3"] := "{u+2003}" ; em space
cmpSpace.item["4"] := "{u+2005}" ; four-per-em space
-cmpSpace.item["5"] := "{u+2008}" ; punctuation space
cmpSpace.item["6"] := "{u+2006}" ; six-per-em space
-cmpSpace.item["7"] := "{u+2009}" ; thin space
-cmpSpace.item["8"] := "{u+200a}" ; hair space
cmpSpace.item["9"] := "{u+2007}" ; figure space
cmpSpace.item["0"] := "{u+200b}" ; zero-width space (ZWSP)
+cmpSpace.item["b"] := "{u+00a0}" ; non-breaking space (NBSP)
cmpSpace.item["m"] := "{u+205f}" ; medium mathematical space (MMSP)
cmpSpace.item["n"] := "{u+202f}" ; narrow no-break space (NNBSP)
-cmpSpace.item[" "] := "{u+00a0}" ; non-breaking space (NBSP)
+cmpSpace.item["p"] := "{u+2008}" ; punctuation space
+cmpSpace.item["t"] := "{u+2009}" ; thin space
+cmpSpace.item["h"] := "{u+200a}" ; hair space
+cmpSpace.item["."] := "{u+2008}" ; punctuation space
+cmpMacronStroke.item["1"] := "{u+2010}" ; (‐) hyphen
cmpMacronStroke.item["2"] := "{u+2013}" ; (–) en dash
cmpMacronStroke.item["3"] := "{u+2014}" ; (—) em dash
cmpMacronStroke.item["4"] := "{u+2015}" ; (―) horizontal bar
-cmpMacronStroke.item["5"] := "{u+2010}" ; (‐) hyphen
cmpMacronStroke.item["9"] := "{u+2012}" ; (‒) figure dash
cmpMacronStroke.item["0"] := "{u+00ad}" ; () soft hyphen (SHY)
cmpMacronStroke.item["-"] := "{u+2011}" ; (‑) non-breaking hyphen
-cmpQuad.item["2"] := "{u+2000}" ; en quad
-cmpQuad.item["3"] := "{u+2001}" ; em quad
-; Compose : Arrows and Pointers
+; Compose : Arrows and Pointing Triangles
cmpArrow := ComObjCreate("Scripting.Dictionary")
cmpArrow.item["w"] := "{u+25b2}" ; (▲) black up-pointing triangle
cmpArrow.item["j"] := "{u+25c1}" ; (◁) white left-pointing triangle
cmpArrow.item["k"] := "{u+25bd}" ; (▽) white down-pointing triangle
cmpArrow.item["l"] := "{u+25b7}" ; (▷) white right-pointing triangle
+cmpArrow.item["W"] := "{u+25b4}" ; (▴) black up-pointing small triangle
+cmpArrow.item["A"] := "{u+25c2}" ; (◂) black left-pointing small triangle
+cmpArrow.item["S"] := "{u+25be}" ; (▾) black down-pointing small triangle
+cmpArrow.item["D"] := "{u+25b8}" ; (▸) black right-pointing small triangle
+cmpArrow.item["I"] := "{u+25b5}" ; (▵) white up-pointing small triangle
+cmpArrow.item["J"] := "{u+25c3}" ; (◃) white left-pointing small triangle
+cmpArrow.item["K"] := "{u+25bf}" ; (▿) white down-pointing small triangle
+cmpArrow.item["L"] := "{u+25b9}" ; (▹) white right-pointing small triangle
+cmpArrow.item["q"] := "{u+25a0}" ; (■) black square
+cmpArrow.item["u"] := "{u+25a1}" ; (□) white square
+cmpArrow.item["Q"] := "{u+25aa}" ; (▪) black small square
+cmpArrow.item["U"] := "{u+25ab}" ; (▫) white small square
+cmpArrow.item["z"] := "{u+25c6}" ; (◆) black diamond
+cmpArrow.item["m"] := "{u+25c7}" ; (◇) white diamond
+cmpArrow.item["Z"] := "{u+2b25}" ; (⬥) black medium diamond
+cmpArrow.item["M"] := "{u+2b26}" ; (⬦) white medium diamond
cmpArrow.item["1"] := "{u+2199}" ; (↙) south west arrow
cmpArrow.item["2"] := "{u+2193}" ; (↓) downwards arrow
cmpArrow.item["3"] := "{u+2198}" ; (↘) south east arrow
; Compose : Various Symbols (s)
cmpSymbols := ComObjCreate("Scripting.Dictionary")
-cmpSymbols.item["a"] := "{u+214d}" ; (⅍) aktieselskab
+cmpSymbols.item["a"] := "{u+2100}" ; (℀) account of
cmpSymbols.item["b"] := "{u+203d}" ; (‽) interrobang
cmpSymbols.item["B"] := "{u+2e18}" ; (⸘) inverted interrobang
cmpSymbols.item["c"] := "{u+2105}" ; (℅) care of
cmpSymbols.item["d"] := "{u+22c4}" ; (⋄) diamond operator
cmpSymbols.item["e"] := "{u+212e}" ; (℮) estimated symbol
cmpSymbols.item["f"] := "{u+2640}" ; (♀) female sign (Venus)
-cmpSymbols.item["h"] := "{u+2126}" ; (Ω) ohm sign (backwards compatibility)
+cmpSymbols.item["h"] := "{u+2302}" ; (⌂) house
+cmpSymbols.item["H"] := "{u+2126}" ; (Ω) ohm sign (backwards compatibility)
cmpSymbols.item["i"] := "{u+2300}" ; (⌀) diameter sign
+cmpSymbols.item["j"] := "{u+2101}" ; (℁) addressed to the subject
+cmpSymbols.item["k"] := "{u+214d}" ; (⅍) aktieselskab
cmpSymbols.item["l"] := "{u+2113}" ; (ℓ) script small l
cmpSymbols.item["L"] := "{u+2112}" ; (ℒ) Laplace transform
cmpSymbols.item["m"] := "{u+2642}" ; (♂) male sign (Mars)
cmpSymbols.item["M"] := "{u+2120}" ; (℠) service mark
-cmpSymbols.item["r"] := "{u+211e}" ; (℞) prescription take (Recipere)
-cmpSymbols.item["R"] := "{u+211e}" ; (℞) prescription take (Recipere)
+cmpSymbols.item["p"] := "{u+211e}" ; (℞) prescription take (Recipere)
+cmpSymbols.item["P"] := "{u+211e}" ; (℞) prescription take (Recipere)
+cmpSymbols.item["r"] := "{u+211f}" ; (℟) response (liturgy)
+cmpSymbols.item["R"] := "{u+211f}" ; (℟) response (liturgy)
+cmpSymbols.item["u"] := "{u+2106}" ; (℆) cada una (each one)
+cmpSymbols.item["v"] := "{u+2123}" ; (℣) versicle (liturgy)
+cmpSymbols.item["V"] := "{u+2123}" ; (℣) versicle (liturgy)
cmpSymbols.item["x"] := "{u+203b}" ; (※) reference mark
cmpSymbols.item["2"] := "{u+266b}" ; (♫) beamed eighth notes
cmpSymbols.item["3"] := "{u+2042}" ; (⁂) asterism
cmpSymbols.item["4"] := "{u+203b}" ; (※) reference mark
+cmpSymbols.item["5"] := "{u+2605}" ; (★) black star
+cmpSymbols.item["6"] := "{u+2606}" ; (☆) white star
cmpSymbols.item["8"] := "{u+266a}" ; (♪) eighth note
cmpSymbols.item["!"] := "{u+203c}" ; (‼) double exclamation mark
cmpSymbols.item["?"] := "{u+2e2e}" ; (⸮) reversed question mark
cmpMathSymbols.item["6"] := "{u+2220}" ; (∠) angle symbol
cmpMathSymbols.item["9"] := "{u+221f}" ; (∟) right angle
cmpMathSymbols.item["0"] := "{u+2221}" ; (∡) measured angle
+cmpMathSymbols.item["."] := "{u+22c5}" ; (⋅) dot operator
+cmpMathSymbols.item["="] := "{u+225d}" ; (≝) equal to by definition
cmpMathSymbols.item["+"] := "{u+2295}" ; (⊕) circled plus
cmpMathSymbols.item["-"] := "{u+2296}" ; (⊖) circled minus
cmpMathSymbols.item["*"] := "{u+2297}" ; (⊗) circled times
cmpMathSymbols.item["/"] := "{u+2298}" ; (⊘) circled division slash
-cmpMathSymbols.item["."] := "{u+2299}" ; (⊙) circled dot operator
-cmpMathSymbols.item["="] := "{u+225d}" ; (≝) equal to by definition
cmpMathSymbols.item[";"] := "{u+2235}" ; (∵) because sign
cmpMathSymbols.item[":"] := "{u+2234}" ; (∴) therefore sign
cmpMathSymbols.item["&"] := "{u+2227}" ; (∧) logical and
cmpCapitalN := ComObjCreate("Scripting.Dictionary")
cmpCapitalO := ComObjCreate("Scripting.Dictionary")
cmpCapitalS := ComObjCreate("Scripting.Dictionary")
-cmpSmallT := ComObjCreate("Scripting.Dictionary")
cmpCapitalT := ComObjCreate("Scripting.Dictionary")
cmpArrow.item["e"] := "{u+00e6}" ; (æ) letter ae
cmpCapitalA.item["E"] := "{u+00c6}" ; (Æ) letter AE
cmpDigitEight := ComObjCreate("Scripting.Dictionary")
cmpCapitalP := ComObjCreate("Scripting.Dictionary")
-cmpSemicolon := ComObjCreate("Scripting.Dictionary")
+cmpSmallY := ComObjCreate("Scripting.Dictionary")
+cmpCapitalV := ComObjCreate("Scripting.Dictionary")
+cmpCapitalY := ComObjCreate("Scripting.Dictionary")
+cmpSmallX := ComObjCreate("Scripting.Dictionary")
+cmpCapitalX := ComObjCreate("Scripting.Dictionary")
+cmpVerticalLine := ComObjCreate("Scripting.Dictionary")
cmpAsterisk := ComObjCreate("Scripting.Dictionary")
cmpExclam := ComObjCreate("Scripting.Dictionary")
cmpQuestion := ComObjCreate("Scripting.Dictionary")
cmpPercent := ComObjCreate("Scripting.Dictionary")
cmpLessThan := ComObjCreate("Scripting.Dictionary")
cmpGreaterThan := ComObjCreate("Scripting.Dictionary")
+cmpSemicolon := ComObjCreate("Scripting.Dictionary")
+cmpBracketLeft := ComObjCreate("Scripting.Dictionary")
cmpSmallD.item["d"] := "{u+2020}" ; (†) dagger
cmpCapitalD.item["D"] := "{u+2021}" ; (‡) double dagger
cmpSmallI.item["i"] := "{u+221e}" ; (∞) infinity symbol
cmpSymbols.item["o"] := "{u+00a7}" ; (§) section sign
cmpCapitalS.item["o"] := "{u+00a7}" ; (§) section sign
cmpSmallT.item["m"] := "{u+2122}" ; (™) trademark symbol
-cmpSemicolon.item["b"] := "{u+2022}" ; (•) bullet
-cmpSemicolon.item[";"] := "{u+2022}" ; (•) bullet
-cmpSemicolon.item["t"] := "{u+2023}" ; (‣) triangular bullet
-cmpSemicolon.item[">"] := "{u+2023}" ; (‣) triangular bullet
-cmpSemicolon.item["h"] := "{u+2043}" ; (⁃) hyphen bullet
-cmpSemicolon.item["-"] := "{u+2043}" ; (⁃) hyphen bullet
-cmpSemicolon.item["w"] := "{u+25e6}" ; (◦) white bullet
-cmpSemicolon.item["o"] := "{u+25e6}" ; (◦) white bullet
+cmpCaron.item["v"] := "{u+2713}" ; (✓) check mark
+cmpSmallY.item["y"] := "{u+2713}" ; (✓) check mark
+cmpCapitalV.item["V"] := "{u+2714}" ; (✔) heavy check mark
+cmpCapitalY.item["Y"] := "{u+2714}" ; (✔) heavy check mark
+cmpSmallX.item["x"] := "{u+2717}" ; (✗) ballot x
+cmpCapitalX.item["X"] := "{u+2718}" ; (✘) heavy ballot x
+cmpVerticalLine.item["|"] := "{u+2016}" ; (‖) double vertical line
cmpAcuteAccent.item["1"] := "{u+2032}" ; (′) prime
cmpAcuteAccent.item["2"] := "{u+2033}" ; (″) double prime
cmpAcuteAccent.item["3"] := "{u+2034}" ; (‴) triple prime
cmpStroke.item["/"] := "{u+00f7}" ; (÷) division sign
cmpAsterisk.item["o"] := "{u+00b0}" ; (°) degree sign
cmpRingAbove.item["*"] := "{u+00b0}" ; (°) degree sign
-cmpDotAbove.item["."] := "{u+00b7}" ; (·) middle dot
+cmpDotAbove.item["-"] := "{u+00b7}" ; (·) middle dot
cmpDotAbove.item["3"] := "{u+2026}" ; (…) horizontal ellipsis
+cmpDotAbove.item["."] := "{u+2026}" ; (…) horizontal ellipsis
cmpArrow.item["-"] := "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)
cmpRingAbove.item["-"] := "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
cmpExclam.item["!"] := "{u+00a1}" ; (¡) inverted exclamation mark
cmpLessThan.item["+"] := "{u+2a7d}" ; (⩽) less-than or slanted equal to
cmpGreaterThan.item["+"] := "{u+2a7e}" ; (⩾) greater-than or slanted equal to
cmpTilde.item["~"] := "{u+2248}" ; (≈) almost equal to
+cmpSemicolon.item["b"] := "{u+2022}" ; (•) bullet
+cmpSemicolon.item["o"] := "{u+25e6}" ; (◦) white bullet
+cmpSemicolon.item["w"] := "{u+25e6}" ; (◦) white bullet
+cmpSemicolon.item["h"] := "{u+2043}" ; (⁃) hyphen bullet
+cmpSemicolon.item["t"] := "{u+2023}" ; (‣) triangular bullet
+cmpSemicolon.item[";"] := "{u+2022}" ; (•) bullet
+cmpBracketLeft.item["]"] := "{u+2610}" ; (☐) ballot box
+cmpBracketLeft.item["v"] := "{u+2611}" ; (☑) ballot box with check
+cmpBracketLeft.item["y"] := "{u+2611}" ; (☑) ballot box with check
+cmpBracketLeft.item["x"] := "{u+2612}" ; (☒) ballot box with x
; Compose : Vulgar Fractions
; Compose : Quotation Marks
-cmpBracketLeft := ComObjCreate("Scripting.Dictionary")
cmpBracketRight := ComObjCreate("Scripting.Dictionary")
cmpBackslash := ComObjCreate("Scripting.Dictionary")
cmpCedillaOgonek.item[chr(34)] := "{u+201e}" ; („) double low-9 quotation mark
cmpAcuteAccent.item[">"] := "{u+203a}" ; (›) right-pointing single angle quotation mark
+; Compose : Chess Pieces and Playing Card Suit Symbols (C)
+
+cmpCapitalC := ComObjCreate("Scripting.Dictionary")
+cmpCapitalC.item["k"] := "{u+2654}" ; (♔) white chess king
+cmpCapitalC.item["q"] := "{u+2655}" ; (♕) white chess queen
+cmpCapitalC.item["r"] := "{u+2656}" ; (♖) white chess rook
+cmpCapitalC.item["b"] := "{u+2657}" ; (♗) white chess bishop
+cmpCapitalC.item["n"] := "{u+2658}" ; (♘) white chess knight
+cmpCapitalC.item["p"] := "{u+2659}" ; (♙) white chess pawn
+cmpCapitalC.item["K"] := "{u+265a}" ; (♚) black chess king
+cmpCapitalC.item["Q"] := "{u+265b}" ; (♛) black chess queen
+cmpCapitalC.item["R"] := "{u+265c}" ; (♜) black chess rook
+cmpCapitalC.item["B"] := "{u+265d}" ; (♝) black chess bishop
+cmpCapitalC.item["N"] := "{u+265e}" ; (♞) black chess knight
+cmpCapitalC.item["P"] := "{u+265f}" ; (♟) black chess pawn
+cmpCapitalC.item["c"] := "{u+2667}" ; (♧) white club suit
+cmpCapitalC.item["C"] := "{u+2663}" ; (♣) black club suit
+cmpCapitalC.item["d"] := "{u+2662}" ; (♢) white diamond suit
+cmpCapitalC.item["D"] := "{u+2666}" ; (♦) black diamond suit
+cmpCapitalC.item["h"] := "{u+2661}" ; (♡) white heart suit
+cmpCapitalC.item["H"] := "{u+2665}" ; (♥) black heart suit
+cmpCapitalC.item["s"] := "{u+2664}" ; (♤) white spade suit
+cmpCapitalC.item["S"] := "{u+2660}" ; (♠) black spade suit
+
+
; Compose : Double Grave Accent (G)
cmpCapitalG := ComObjCreate("Scripting.Dictionary")
cmpGreaterThan.item["Z"] := "{u+1e92}" ; (Ẓ) Z with dot below
+; Accented Letters with Dot Below (?)
+
+cmpQuestion.item["a"] := "{u+1ead}" ; (ậ) a with circumflex and dot below
+cmpQuestion.item["A"] := "{u+1eac}" ; (Ậ) A with circumflex and dot below
+cmpQuestion.item["b"] := "{u+1eb7}" ; (ặ) a with breve and dot below
+cmpQuestion.item["B"] := "{u+1eb6}" ; (Ặ) A with breve and dot below
+cmpQuestion.item["e"] := "{u+1ec7}" ; (ệ) e with circumflex and dot below
+cmpQuestion.item["E"] := "{u+1ec6}" ; (Ệ) E with circumflex and dot below
+cmpQuestion.item["f"] := "{u+1e1d}" ; (ḝ) e with cedilla and breve
+cmpQuestion.item["F"] := "{u+1e1c}" ; (Ḝ) E with cedilla and breve
+cmpQuestion.item["l"] := "{u+1e39}" ; (ḹ) l with dot below and macron
+cmpQuestion.item["L"] := "{u+1e38}" ; (Ḹ) L with dot below and macron
+cmpQuestion.item["o"] := "{u+1ed9}" ; (ộ) o with circumflex and dot below
+cmpQuestion.item["O"] := "{u+1ed8}" ; (Ộ) O with circumflex and dot below
+cmpQuestion.item["r"] := "{u+1e5d}" ; (ṝ) r with dot below and macron
+cmpQuestion.item["R"] := "{u+1e5c}" ; (Ṝ) R with dot below and macron
+cmpQuestion.item["s"] := "{u+1e69}" ; (ṩ) s with dot below and dot above
+cmpQuestion.item["S"] := "{u+1e68}" ; (Ṩ) S with dot below and dot above
+cmpQuestion.item["t"] := "{u+1ee3}" ; (ợ) o with horn and dot below
+cmpQuestion.item["T"] := "{u+1ee2}" ; (Ợ) O with horn and dot below
+cmpQuestion.item["u"] := "{u+1ef1}" ; (ự) u with horn and dot below
+cmpQuestion.item["U"] := "{u+1ef0}" ; (Ự) U with horn and dot below
+
+
; Compose : Miscellaneous Symbols and Dingbats
cmpDigitSix := ComObjCreate("Scripting.Dictionary")
cmpDigitTwo.item["t"] := "{u+26a0}" ; (⚠) warning sign
cmpDigitTwo.item["u"] := "{u+26a1}" ; (⚡) high voltage sign
cmpDigitTwo.item["v"] := "{u+26d4}" ; (⛔) no entry
+cmpDigitTwo.item["w"] := "{u+231a}" ; (⌚) watch
+cmpDigitTwo.item["x"] := "{u+231b}" ; (⌛) hourglass
cmpDigitThree.item["a"] := "{u+2701}" ; (✁) upper blade scissors
cmpDigitThree.item["b"] := "{u+2702}" ; (✂) black scissors
cmpDigitEight.item["n"] := "{u+27c1}" ; (⟁) white triangle containing small white triangle
-; Compose : Chess Pieces and Playing Card Suit Symbols (C)
-
-cmpCapitalC := ComObjCreate("Scripting.Dictionary")
-cmpCapitalC.item["k"] := "{u+2654}" ; (♔) white chess king
-cmpCapitalC.item["q"] := "{u+2655}" ; (♕) white chess queen
-cmpCapitalC.item["r"] := "{u+2656}" ; (♖) white chess rook
-cmpCapitalC.item["b"] := "{u+2657}" ; (♗) white chess bishop
-cmpCapitalC.item["n"] := "{u+2658}" ; (♘) white chess knight
-cmpCapitalC.item["p"] := "{u+2659}" ; (♙) white chess pawn
-cmpCapitalC.item["K"] := "{u+265a}" ; (♚) black chess king
-cmpCapitalC.item["Q"] := "{u+265b}" ; (♛) black chess queen
-cmpCapitalC.item["R"] := "{u+265c}" ; (♜) black chess rook
-cmpCapitalC.item["B"] := "{u+265d}" ; (♝) black chess bishop
-cmpCapitalC.item["N"] := "{u+265e}" ; (♞) black chess knight
-cmpCapitalC.item["P"] := "{u+265f}" ; (♟) black chess pawn
-cmpCapitalC.item["c"] := "{u+2667}" ; (♧) white club suit
-cmpCapitalC.item["C"] := "{u+2663}" ; (♣) black club suit
-cmpCapitalC.item["d"] := "{u+2662}" ; (♢) white diamond suit
-cmpCapitalC.item["D"] := "{u+2666}" ; (♦) black diamond suit
-cmpCapitalC.item["h"] := "{u+2661}" ; (♡) white heart suit
-cmpCapitalC.item["H"] := "{u+2665}" ; (♥) black heart suit
-cmpCapitalC.item["s"] := "{u+2664}" ; (♤) white spade suit
-cmpCapitalC.item["S"] := "{u+2660}" ; (♠) black spade suit
-
-
; Compose : Dingbat Negative Circled Digits (n)
cmpSmallN.item["1"] := "{u+2776}" ; (❶) dingbat negative circled digit 1
cmpSmallN.item["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10
-; Configuration : 'Right Alt' and 'Right Alt + Shift' on US QWERTY
+; Configuration : 'AltGr (RAlt)' and 'AltGr (RAlt) + Shift' modifiers
+
+; Key : 1
+>!sc002::
+<^>!sc002::Send {u+00a1} ; (¡) inverted exclamation mark
+>!+sc002::
+<^>!+sc002::Send {u+00b9} ; (¹) superscript 1
+
+; Key : 2
+>!sc003::
+<^>!sc003::Send {u+2264} ; (≤) less-than or equal to
+>!+sc003::
+<^>!+sc003::Send {u+00b2} ; (²) superscript 2
+
+; Key : 3
+>!sc004::
+<^>!sc004::Send {u+2265} ; (≥) greater-than or equal to
+>!+sc004::
+<^>!+sc004::Send {u+00b3} ; (³) superscript 3
+
+; Key : 4
+>!sc005::
+<^>!sc005::Send {u+00a3} ; (£) pound sign
+>!+sc005::
+<^>!+sc005::Send {u+00a5} ; (¥) yen sign
+
+; Key : 5
+>!sc006::
+<^>!sc006::Send {u+20ac} ; (€) euro sign
+>!+sc006::
+<^>!+sc006::Send {u+00a2} ; (¢) cent sign (dollar)
+
+; Key : 6
+>!sc007::
+<^>!sc007::
+ if GetKeyState("CapsLock", "T")
+ Send {u+00c3} ; (Ã) A with tilde
+ else
+ Send {u+00e3} ; (ã) a with tilde
+ return
+>!+sc007::
+<^>!+sc007::
+ if GetKeyState("CapsLock", "T")
+ Send {u+00e3} ; (ã) a with tilde
+ else
+ Send {u+00c3} ; (Ã) A with tilde
+ return
->!a::
+; Key : 7
+>!sc008::
+<^>!sc008::
if GetKeyState("CapsLock", "T")
- Send {u+00c4} ; (Ä) A with diaeresis
+ Send {u+00d5} ; (Õ) O with tilde
else
- Send {u+00e4} ; (ä) a with diaeresis
+ Send {u+00f5} ; (õ) o with tilde
return
->!+a::
+>!+sc008::
+<^>!+sc008::
if GetKeyState("CapsLock", "T")
- Send {u+00e4} ; (ä) a with diaeresis
+ Send {u+00f5} ; (õ) o with tilde
else
- Send {u+00c4} ; (Ä) A with diaeresis
+ Send {u+00d5} ; (Õ) O with tilde
return
->!q::
+; Key : 8
+>!sc009::
+<^>!sc009::Send {u+201e} ; („) double low-9 quotation mark
+>!+sc009::
+<^>!+sc009::Send {u+00a7} ; (§) section sign
+
+; Key : 9
+>!sc00A::
+<^>!sc00A::Send {u+201c} ; (“) left double quotation mark
+>!+sc00A::
+<^>!+sc00A::Send {u+2018} ; (‘) left single quotation mark
+
+; Key : 0
+>!sc00B::
+<^>!sc00B::Send {u+201d} ; (”) right double quotation mark
+>!+sc00B::
+<^>!+sc00B::Send {u+2019} ; (’) right single quotation mark
+
+; Key : - / _ (hyphen-minus / underscore)
+>!sc00C::
+<^>!sc00C::Send {u+2013} ; (–) en dash
+>!+sc00C::
+<^>!+sc00C::Send {u+2014} ; (—) em dash
+
+; Key : = / + (equals sign / plus sign)
+>!sc00D::
+<^>!sc00D::Send {u+00d7} ; (×) multiplication sign
+>!+sc00D::
+<^>!+sc00D::Send {u+00f7} ; (÷) division sign
+
+; Key : Q
+>!sc010::
+<^>!sc010::
if GetKeyState("CapsLock", "T")
Send {u+00c6} ; (Æ) letter AE
else
Send {u+00e6} ; (æ) letter ae
return
->!+q::
+>!+sc010::
+<^>!+sc010::
if GetKeyState("CapsLock", "T")
Send {u+00e6} ; (æ) letter ae
else
Send {u+00c6} ; (Æ) letter AE
return
->!w::
+; Key : W
+>!sc011::
+<^>!sc011::
if GetKeyState("CapsLock", "T")
Send {u+00c5} ; (Å) A with ring above
else
Send {u+00e5} ; (å) a with ring above
return
->!+w::
+>!+sc011::
+<^>!+sc011::
if GetKeyState("CapsLock", "T")
Send {u+00e5} ; (å) a with ring above
else
Send {u+00c5} ; (Å) A with ring above
return
->!z::
+; Key : E
+>!sc012::
+<^>!sc012::
if GetKeyState("CapsLock", "T")
- Send {u+00c0} ; (À) A with grave
+ Send {u+00cb} ; (Ë) E with diaeresis
else
- Send {u+00e0} ; (à) a with grave
+ Send {u+00eb} ; (ë) e with diaeresis
return
->!+z::
+>!+sc012::
+<^>!+sc012::
if GetKeyState("CapsLock", "T")
- Send {u+00e0} ; (à) a with grave
+ Send {u+00eb} ; (ë) e with diaeresis
else
- Send {u+00c0} ; (À) A with grave
+ Send {u+00cb} ; (Ë) E with diaeresis
return
->!x::
+; Key : R
+>!sc013::
+<^>!sc013::
if GetKeyState("CapsLock", "T")
- Send {u+00c1} ; (Á) A with acute
+ Send {u+00ca} ; (Ê) E with circumflex
else
- Send {u+00e1} ; (á) a with acute
+ Send {u+00ea} ; (ê) e with circumflex
return
->!+x::
+>!+sc013::
+<^>!+sc013::
if GetKeyState("CapsLock", "T")
- Send {u+00e1} ; (á) a with acute
+ Send {u+00ea} ; (ê) e with circumflex
else
- Send {u+00c1} ; (Á) A with acute
+ Send {u+00ca} ; (Ê) E with circumflex
return
->!d::
+; Key : T
+>!sc014::
+<^>!sc014::
if GetKeyState("CapsLock", "T")
- Send {u+00c2} ; (Â) A with circumflex
+ Send {u+00ce} ; (Î) I with circumflex
else
- Send {u+00e2} ; (â) a with circumflex
+ Send {u+00ee} ; (î) i with circumflex
return
->!+d::
+>!+sc014::
+<^>!+sc014::
if GetKeyState("CapsLock", "T")
- Send {u+00e2} ; (â) a with circumflex
+ Send {u+00ee} ; (î) i with circumflex
else
- Send {u+00c2} ; (Â) A with circumflex
+ Send {u+00ce} ; (Î) I with circumflex
return
->!c::
+; Key : Y
+>!sc015::
+<^>!sc015::
if GetKeyState("CapsLock", "T")
- Send {u+00c7} ; (Ç) C with cedilla
+ Send {u+00db} ; (Û) U with circumflex
else
- Send {u+00e7} ; (ç) c with cedilla
+ Send {u+00fb} ; (û) u with circumflex
return
->!+c::
+>!+sc015::
+<^>!+sc015::
if GetKeyState("CapsLock", "T")
- Send {u+00e7} ; (ç) c with cedilla
+ Send {u+00fb} ; (û) u with circumflex
else
- Send {u+00c7} ; (Ç) C with cedilla
+ Send {u+00db} ; (Û) U with circumflex
return
->!e::
+; Key : U
+>!sc016::
+<^>!sc016::
if GetKeyState("CapsLock", "T")
- Send {u+00cb} ; (Ë) E with diaeresis
+ Send {u+00dc} ; (Ü) U with diaeresis
else
- Send {u+00eb} ; (ë) e with diaeresis
+ Send {u+00fc} ; (ü) u with diaeresis
return
->!+e::
+>!+sc016::
+<^>!+sc016::
if GetKeyState("CapsLock", "T")
- Send {u+00eb} ; (ë) e with diaeresis
+ Send {u+00fc} ; (ü) u with diaeresis
else
- Send {u+00cb} ; (Ë) E with diaeresis
+ Send {u+00dc} ; (Ü) U with diaeresis
return
->!f::
+; Key : I
+>!sc017::
+<^>!sc017::
if GetKeyState("CapsLock", "T")
- Send {u+00c8} ; (È) E with grave
+ Send {u+00cf} ; (Ï) I with diaeresis
else
- Send {u+00e8} ; (è) e with grave
+ Send {u+00ef} ; (ï) i with diaeresis
return
->!+f::
+>!+sc017::
+<^>!+sc017::
if GetKeyState("CapsLock", "T")
- Send {u+00e8} ; (è) e with grave
+ Send {u+00ef} ; (ï) i with diaeresis
else
- Send {u+00c8} ; (È) E with grave
+ Send {u+00cf} ; (Ï) I with diaeresis
return
->!g::
+; Key : O
+>!sc018::
+<^>!sc018::
if GetKeyState("CapsLock", "T")
- Send {u+00c9} ; (É) E with acute
+ Send {u+00d6} ; (Ö) O with diaeresis
else
- Send {u+00e9} ; (é) e with acute
+ Send {u+00f6} ; (ö) o with diaeresis
return
->!+g::
+>!+sc018::
+<^>!+sc018::
if GetKeyState("CapsLock", "T")
- Send {u+00e9} ; (é) e with acute
+ Send {u+00f6} ; (ö) o with diaeresis
else
- Send {u+00c9} ; (É) E with acute
+ Send {u+00d6} ; (Ö) O with diaeresis
return
->!r::
+; Key : P
+>!sc019::
+<^>!sc019::
if GetKeyState("CapsLock", "T")
- Send {u+00ca} ; (Ê) E with circumflex
+ Send {u+00d4} ; (Ô) O with circumflex
else
- Send {u+00ea} ; (ê) e with circumflex
+ Send {u+00f4} ; (ô) o with circumflex
return
->!+r::
+>!+sc019::
+<^>!+sc019::
if GetKeyState("CapsLock", "T")
- Send {u+00ea} ; (ê) e with circumflex
+ Send {u+00f4} ; (ô) o with circumflex
else
- Send {u+00ca} ; (Ê) E with circumflex
+ Send {u+00d4} ; (Ô) O with circumflex
return
->!i::
+; Key : [ / { (left square bracket / left curly bracket)
+>!sc01A::
+<^>!sc01A::Send {u+00ab} ; («) left-pointing double angle quotation mark
+>!+sc01A::
+<^>!+sc01A::Send {u+2039} ; (‹) left-pointing single angle quotation mark
+
+; Key : ] / } (right square bracket / right curly bracket)
+>!sc01B::
+<^>!sc01B::Send {u+00bb} ; (») right-pointing double angle quotation mark
+>!+sc01B::
+<^>!+sc01B::Send {u+203a} ; (›) right-pointing single angle quotation mark
+
+; Key : A
+>!sc01E::
+<^>!sc01E::
if GetKeyState("CapsLock", "T")
- Send {u+00cf} ; (Ï) I with diaeresis
+ Send {u+00c4} ; (Ä) A with diaeresis
else
- Send {u+00ef} ; (ï) i with diaeresis
+ Send {u+00e4} ; (ä) a with diaeresis
return
->!+i::
+>!+sc01E::
+<^>!+sc01E::
if GetKeyState("CapsLock", "T")
- Send {u+00ef} ; (ï) i with diaeresis
+ Send {u+00e4} ; (ä) a with diaeresis
else
- Send {u+00cf} ; (Ï) I with diaeresis
+ Send {u+00c4} ; (Ä) A with diaeresis
return
->!v::
+; Key : S
+>!sc01F::
+<^>!sc01F::
if GetKeyState("CapsLock", "T")
- Send {u+00cc} ; (Ì) I with grave
+ Send {u+1e9e} ; (ẞ) capital sharp S (capital Eszett)
else
- Send {u+00ec} ; (ì) i with grave
+ Send {u+00df} ; (ß) small sharp s (Eszett)
return
->!+v::
+>!+sc01F::
+<^>!+sc01F::
if GetKeyState("CapsLock", "T")
- Send {u+00ec} ; (ì) i with grave
+ Send {u+00df} ; (ß) small sharp s (Eszett)
else
- Send {u+00cc} ; (Ì) I with grave
+ Send {u+1e9e} ; (ẞ) capital sharp S (capital Eszett)
return
->!b::
+; Key : D
+>!sc020::
+<^>!sc020::
if GetKeyState("CapsLock", "T")
- Send {u+00cd} ; (Í) I with acute
+ Send {u+00c2} ; (Â) A with circumflex
else
- Send {u+00ed} ; (í) i with acute
+ Send {u+00e2} ; (â) a with circumflex
return
->!+b::
+>!+sc020::
+<^>!+sc020::
if GetKeyState("CapsLock", "T")
- Send {u+00ed} ; (í) i with acute
+ Send {u+00e2} ; (â) a with circumflex
else
- Send {u+00cd} ; (Í) I with acute
+ Send {u+00c2} ; (Â) A with circumflex
return
->!t::
+; Key : F
+>!sc021::
+<^>!sc021::
if GetKeyState("CapsLock", "T")
- Send {u+00ce} ; (Î) I with circumflex
+ Send {u+00c9} ; (É) E with acute
else
- Send {u+00ee} ; (î) i with circumflex
+ Send {u+00e9} ; (é) e with acute
return
->!+t::
+>!+sc021::
+<^>!+sc021::
if GetKeyState("CapsLock", "T")
- Send {u+00ee} ; (î) i with circumflex
+ Send {u+00e9} ; (é) e with acute
else
- Send {u+00ce} ; (Î) I with circumflex
+ Send {u+00c9} ; (É) E with acute
return
->!n::
+; Key : G
+>!sc022::
+<^>!sc022::
if GetKeyState("CapsLock", "T")
- Send {u+00d1} ; (Ñ) N with tilde
+ Send {u+00c8} ; (È) E with grave
else
- Send {u+00f1} ; (ñ) n with tilde
+ Send {u+00e8} ; (è) e with grave
return
->!+n::
+>!+sc022::
+<^>!+sc022::
if GetKeyState("CapsLock", "T")
- Send {u+00f1} ; (ñ) n with tilde
+ Send {u+00e8} ; (è) e with grave
else
- Send {u+00d1} ; (Ñ) N with tilde
+ Send {u+00c8} ; (È) E with grave
return
->!o::
+; Key : H
+>!sc023::
+<^>!sc023::
if GetKeyState("CapsLock", "T")
- Send {u+00d6} ; (Ö) O with diaeresis
+ Send {u+00da} ; (Ú) U with acute
else
- Send {u+00f6} ; (ö) o with diaeresis
+ Send {u+00fa} ; (ú) u with acute
return
->!+o::
+>!+sc023::
+<^>!+sc023::
if GetKeyState("CapsLock", "T")
- Send {u+00f6} ; (ö) o with diaeresis
+ Send {u+00fa} ; (ú) u with acute
else
- Send {u+00d6} ; (Ö) O with diaeresis
+ Send {u+00da} ; (Ú) U with acute
return
->!k::
+; Key : J
+>!sc024::
+<^>!sc024::
+ if GetKeyState("CapsLock", "T")
+ Send {u+00d9} ; (Ù) U with grave
+ else
+ Send {u+00f9} ; (ù) u with grave
+ return
+>!+sc024::
+<^>!+sc024::
+ if GetKeyState("CapsLock", "T")
+ Send {u+00f9} ; (ù) u with grave
+ else
+ Send {u+00d9} ; (Ù) U with grave
+ return
+
+; Key : K
+>!sc025::
+<^>!sc025::
if GetKeyState("CapsLock", "T")
Send {u+0152} ; (Œ) ligature OE
else
Send {u+0153} ; (œ) ligature oe
return
->!+k::
+>!+sc025::
+<^>!+sc025::
if GetKeyState("CapsLock", "T")
Send {u+0153} ; (œ) ligature oe
else
Send {u+0152} ; (Œ) ligature OE
return
->!l::
+; Key : L
+>!sc026::
+<^>!sc026::
if GetKeyState("CapsLock", "T")
Send {u+00d8} ; (Ø) O with stroke
else
Send {u+00f8} ; (ø) o with stroke
return
->!+l::
+>!+sc026::
+<^>!+sc026::
if GetKeyState("CapsLock", "T")
Send {u+00f8} ; (ø) o with stroke
else
Send {u+00d8} ; (Ø) O with stroke
return
->!,::
+; Key : ; / : (semicolon / colon)
+>!sc027::
+<^>!sc027::Send {u+00b0} ; (°) degree sign
+>!+sc027::
+<^>!+sc027::Send {u+00b7} ; (·) middle dot
+
+; Key : ' / " (apostrophe / quotation mark)
+>!sc028::
+<^>!sc028::Send {u+266a} ; (♪) eighth note
+>!+sc028::
+<^>!+sc028::Send {u+266b} ; (♫) beamed eighth notes
+
+; Key : \ / | (backslash / vertical line)
+>!sc02B::
+<^>!sc02B::Send {u+2002} ; en space
+>!+sc02B::
+<^>!+sc02B::Send {u+2003} ; em space
+
+; Key : Z
+>!sc02C::
+<^>!sc02C::
if GetKeyState("CapsLock", "T")
- Send {u+00d2} ; (Ò) O with grave
- else
- Send {u+00f2} ; (ò) o with grave
- return
->!<::
- if GetKeyState("CapsLock", "T")
- Send {u+00f2} ; (ò) o with grave
- else
- Send {u+00d2} ; (Ò) O with grave
- return
-
->!.::
- if GetKeyState("CapsLock", "T")
- Send {u+00d3} ; (Ó) O with acute
+ Send {u+00c1} ; (Á) A with acute
else
- Send {u+00f3} ; (ó) o with acute
+ Send {u+00e1} ; (á) a with acute
return
->!>::
+>!+sc02C::
+<^>!+sc02C::
if GetKeyState("CapsLock", "T")
- Send {u+00f3} ; (ó) o with acute
+ Send {u+00e1} ; (á) a with acute
else
- Send {u+00d3} ; (Ó) O with acute
+ Send {u+00c1} ; (Á) A with acute
return
->!p::
+; Key : X
+>!sc02D::
+<^>!sc02D::
if GetKeyState("CapsLock", "T")
- Send {u+00d4} ; (Ô) O with circumflex
+ Send {u+00c0} ; (À) A with grave
else
- Send {u+00f4} ; (ô) o with circumflex
+ Send {u+00e0} ; (à) a with grave
return
->!+p::
+>!+sc02D::
+<^>!+sc02D::
if GetKeyState("CapsLock", "T")
- Send {u+00f4} ; (ô) o with circumflex
+ Send {u+00e0} ; (à) a with grave
else
- Send {u+00d4} ; (Ô) O with circumflex
+ Send {u+00c0} ; (À) A with grave
return
->!s::
+; Key : C
+>!sc02E::
+<^>!sc02E::
if GetKeyState("CapsLock", "T")
- Send {u+1e9e} ; (ẞ) capital sharp S (capital Eszett)
+ Send {u+00c7} ; (Ç) C with cedilla
else
- Send {u+00df} ; (ß) small sharp s (Eszett)
+ Send {u+00e7} ; (ç) c with cedilla
return
->!+s::
+>!+sc02E::
+<^>!+sc02E::
if GetKeyState("CapsLock", "T")
- Send {u+00df} ; (ß) small sharp s (Eszett)
+ Send {u+00e7} ; (ç) c with cedilla
else
- Send {u+1e9e} ; (ẞ) capital sharp S (capital Eszett)
+ Send {u+00c7} ; (Ç) C with cedilla
return
->!u::
+; Key : V
+>!sc02F::
+<^>!sc02F::
if GetKeyState("CapsLock", "T")
- Send {u+00dc} ; (Ü) U with diaeresis
+ Send {u+00cd} ; (Í) I with acute
else
- Send {u+00fc} ; (ü) u with diaeresis
+ Send {u+00ed} ; (í) i with acute
return
->!+u::
+>!+sc02F::
+<^>!+sc02F::
if GetKeyState("CapsLock", "T")
- Send {u+00fc} ; (ü) u with diaeresis
+ Send {u+00ed} ; (í) i with acute
else
- Send {u+00dc} ; (Ü) U with diaeresis
+ Send {u+00cd} ; (Í) I with acute
return
->!h::
+; Key : B
+>!sc030::
+<^>!sc030::
if GetKeyState("CapsLock", "T")
- Send {u+00d9} ; (Ù) U with grave
+ Send {u+00cc} ; (Ì) I with grave
else
- Send {u+00f9} ; (ù) u with grave
+ Send {u+00ec} ; (ì) i with grave
return
->!+h::
+>!+sc030::
+<^>!+sc030::
if GetKeyState("CapsLock", "T")
- Send {u+00f9} ; (ù) u with grave
+ Send {u+00ec} ; (ì) i with grave
else
- Send {u+00d9} ; (Ù) U with grave
+ Send {u+00cc} ; (Ì) I with grave
return
->!j::
+; Key : N
+>!sc031::
+<^>!sc031::
if GetKeyState("CapsLock", "T")
- Send {u+00da} ; (Ú) U with acute
+ Send {u+00d1} ; (Ñ) N with tilde
else
- Send {u+00fa} ; (ú) u with acute
+ Send {u+00f1} ; (ñ) n with tilde
return
->!+j::
+>!+sc031::
+<^>!+sc031::
if GetKeyState("CapsLock", "T")
- Send {u+00fa} ; (ú) u with acute
+ Send {u+00f1} ; (ñ) n with tilde
else
- Send {u+00da} ; (Ú) U with acute
+ Send {u+00d1} ; (Ñ) N with tilde
return
->!y::
- if GetKeyState("CapsLock", "T")
- Send {u+00db} ; (Û) U with circumflex
- else
- Send {u+00fb} ; (û) u with circumflex
- return
->!+y::
- if GetKeyState("CapsLock", "T")
- Send {u+00fb} ; (û) u with circumflex
- else
- Send {u+00db} ; (Û) U with circumflex
- return
+; Key : M
+>!sc032::
+<^>!sc032::Send {u+00b5} ; (µ) micro sign
+>!+sc032::
+<^>!+sc032::Send {u+00b1} ; (±) plus-minus sign
->!6::
+; Key : , / < (comma / less-than sign)
+>!sc033::
+<^>!sc033::
if GetKeyState("CapsLock", "T")
- Send {u+00c3} ; (Ã) A with tilde
+ Send {u+00d3} ; (Ó) O with acute
else
- Send {u+00e3} ; (ã) a with tilde
+ Send {u+00f3} ; (ó) o with acute
return
->!+6::
+>!+sc033::
+<^>!+sc033::
if GetKeyState("CapsLock", "T")
- Send {u+00e3} ; (ã) a with tilde
+ Send {u+00f3} ; (ó) o with acute
else
- Send {u+00c3} ; (Ã) A with tilde
+ Send {u+00d3} ; (Ó) O with acute
return
->!7::
+; Key : . / > (period / greater-than sign)
+>!sc034::
+<^>!sc034::
if GetKeyState("CapsLock", "T")
- Send {u+00d5} ; (Õ) O with tilde
+ Send {u+00d2} ; (Ò) O with grave
else
- Send {u+00f5} ; (õ) o with tilde
+ Send {u+00f2} ; (ò) o with grave
return
->!+7::
+>!+sc034::
+<^>!+sc034::
if GetKeyState("CapsLock", "T")
- Send {u+00f5} ; (õ) o with tilde
+ Send {u+00f2} ; (ò) o with grave
else
- Send {u+00d5} ; (Õ) O with tilde
+ Send {u+00d2} ; (Ò) O with grave
return
->!m::Send {u+00b5} ; (µ) micro sign
->!+m::Send {u+00b1} ; (±) plus-minus sign
-
->!1::Send {u+00a1} ; (¡) inverted exclamation mark
->!+1::Send {u+00b9} ; (¹) superscript 1
-
->!2::Send {u+2264} ; (≤) less-than or equal to
->!+2::Send {u+00b2} ; (²) superscript 2
-
->!3::Send {u+2265} ; (≥) greater-than or equal to
->!+3::Send {u+00b3} ; (³) superscript 3
-
->!4::Send {u+00a3} ; (£) pound sign
->!+4::Send {u+00a5} ; (¥) yen sign
-
->!5::Send {u+20ac} ; (€) euro sign
->!+5::Send {u+00a2} ; (¢) cent sign (dollar)
-
->!8::Send {u+201e} ; („) double low-9 quotation mark
->!+8::Send {u+00a7} ; (§) section sign
-
->!9::Send {u+201c} ; (“) left double quotation mark
->!+9::Send {u+2018} ; (‘) left single quotation mark
-
->!0::Send {u+201d} ; (”) right double quotation mark
->!+0::Send {u+2019} ; (’) right single quotation mark
-
->!-::Send {u+2013} ; (–) en dash
->!_::Send {u+2014} ; (—) em dash
-
->!=::Send {u+00d7} ; (×) multiplication sign
->!+=::Send {u+00f7} ; (÷) division sign
-
->![::Send {u+00ab} ; («) left-pointing double angle quotation mark
->!{::Send {u+2039} ; (‹) left-pointing single angle quotation mark
+; Key : / / ? (slash / question mark)
+>!sc035::
+<^>!sc035::Send {u+00bf} ; (¿) inverted question mark
+>!+sc035::
+<^>!+sc035::Send {u+2022} ; (•) bullet
->!]::Send {u+00bb} ; (») right-pointing double angle quotation mark
->!}::Send {u+203a} ; (›) right-pointing single angle quotation mark
-
->!;::Send {u+00b0} ; (°) degree sign
->!+;::Send {u+00b7} ; (·) middle dot
-
->!'::Send {u+2020} ; (†) dagger
->!"::Send {u+2021} ; (‡) double dagger
-
->!\::Send {u+2002} ; en space
->!|::Send {u+2003} ; em space
-
->!/::Send {u+00bf} ; (¿) inverted question mark
->!?::Send {u+2026} ; (…) horizontal ellipsis
-
->!space::Send {u+00a0} ; non-breaking space (NBSP)
->!+space::Send {u+00a0} ; non-breaking space (NBSP)
+; Key : (space)
+>!sc039::
+<^>!sc039::Send {u+00a0} ; non-breaking space (NBSP)
+>!+sc039::
+<^>!+sc039::Send {u+00a0} ; non-breaking space (NBSP)
; Configuration : Compose Key Selector
->!`::
+>!sc029::
+>!+sc029::
+<^>!sc029::
+<^>!+sc029::
>!sc056::
+>!+sc056::
+<^>!sc056::
+<^>!+sc056::
Input, keyA, L1, {bs}{del}{esc}{home}{end}
Input, keyB, L1, {bs}{del}{esc}{home}{end}
Send % cmpSmallH.item[keyB]
else if (keyA == "f")
Send % cmpSmallF.item[keyB]
+ else if (keyA == "t")
+ Send % cmpSmallT.item[keyB]
else if (keyA == "l")
Send % cmpSmallL.item[keyB]
else if (keyA == "r")
Send % cmpSubscript.item[keyB]
else if (keyA == " ")
Send % cmpSpace.item[keyB]
- else if (keyA == "q")
- Send % cmpQuad.item[keyB]
else if (keyA == "a")
Send % cmpArrow.item[keyB]
else if (keyA == "s")
Send % cmpCapitalO.item[keyB]
else if (keyA == "S")
Send % cmpCapitalS.item[keyB]
- else if (keyA == "t")
- Send % cmpSmallT.item[keyB]
else if (keyA == "T")
Send % cmpCapitalT.item[keyB]
else if (keyA == "P")
Send % cmpCapitalP.item[keyB]
- else if (keyA == ";")
- Send % cmpSemicolon.item[keyB]
+ else if (keyA == "y")
+ Send % cmpSmallY.item[keyB]
+ else if (keyA == "V")
+ Send % cmpCapitalV.item[keyB]
+ else if (keyA == "Y")
+ Send % cmpCapitalY.item[keyB]
+ else if (keyA == "x")
+ Send % cmpSmallX.item[keyB]
+ else if (keyA == "X")
+ Send % cmpCapitalX.item[keyB]
+ else if (keyA == "|")
+ Send % cmpVerticalLine.item[keyB]
else if (keyA == "*")
Send % cmpAsterisk.item[keyB]
else if (keyA == "!")
Send % cmpLessThan.item[keyB]
else if (keyA == ">")
Send % cmpGreaterThan.item[keyB]
+ else if (keyA == "[")
+ Send % cmpBracketLeft.item[keyB]
+ else if (keyA == ";")
+ Send % cmpSemicolon.item[keyB]
else if (keyA == "1")
Send % cmpDigitOne.item[keyB]
else if (keyA == "2")
Send % cmpDigitSeven.item[keyB]
else if (keyA == "0")
Send % cmpDigitZero.item[keyB]
- else if (keyA == "[")
- Send % cmpBracketLeft.item[keyB]
else if (keyA == "]")
Send % cmpBracketRight.item[keyB]
else if (keyA == "\")
Send % cmpBackslash.item[keyB]
+ else if (keyA == "C")
+ Send % cmpCapitalC.item[keyB]
else if (keyA == "G")
Send % cmpCapitalG.item[keyB]
else if (keyA == "B")
Send % cmpCapitalR.item[keyB]
else if (keyA == "6")
Send % cmpDigitSix.item[keyB]
- else if (keyA == "C")
- Send % cmpCapitalC.item[keyB]
keyA := "" ; avoids leaking content via debug properties
keyB := "" ; avoids leaking content via debug properties